package com.xiaozhu.common.aiconstant;

/**
 * 🔧 重构：优化常量类命名和组织
 * 
 * 之前：ChatMemoryAmountConstant.java - 类名冗长，只有一个常量
 * 现在：ChatConstants.java - 集中管理所有聊天相关的常量
 * 
 * @author 朱慧军
 * @version 1.0
 */
public class ChatConstants {
    
    /**
     * 内存缓存中每个类型最多保存的会话ID数量
     * 
     * 说明：为了防止内存占用过多，限制每个聊天类型最多缓存100个会话ID
     * 超过此数量将删除最旧的记录
     */
    public static final Integer MAX_CACHED_CHAT_IDS_PER_TYPE = 100;
    
    /**
     * 聊天消息最大长度（字符数）
     * 
     * 说明：防止用户输入过长的消息，避免影响AI响应速度和数据库性能
     */
    public static final Integer MAX_MESSAGE_LENGTH = 5000;
    
    /**
     * 会话标题最大长度（字符数）
     * 
     * 说明：从用户的第一条消息中截取前50个字符作为会话标题
     */
    public static final Integer MAX_SESSION_TITLE_LENGTH = 50;
    
    /**
     * Redis 缓存过期时间（秒）
     * 
     * 说明：Redis 中的聊天历史缓存默认保留7天
     */
    public static final Long REDIS_CACHE_EXPIRE_SECONDS = 7 * 24 * 60 * 60L;  // 7天
    
    // 私有构造函数，防止实例化
    private ChatConstants() {
        throw new UnsupportedOperationException("这是一个常量类，不能被实例化");
    }
}













